﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace PM.Entity
{
    public class DividendReceivable
    {
        #region property

        public string ClientId { get; set; }
        public string SecurityId { get; set; } 
        public DateTime XD { get; set; }
        public Decimal RateOfDividend { get; set; }
        public int     Quantity { get; set; }
        public Decimal Amount { get; set; }   
        public bool Received { get; set; }
        public string Remarks { get; set; }
        public DateTime PaymentDate { get; set; }
        public decimal TaxRate { get; set; }

        #region ScripDividend
        public decimal Propotion { get; set; }        
        #endregion

        #region BonusIssue
        public decimal ValuePerShare { get; set; }        
        #endregion

        #region RightsIssue
        public DateTime RenunciationDate { get; set; }
        public DateTime TradeCommencementDate { get; set; }        
        #endregion
        public int QuantityReceivable { get; set; }
        #endregion

        public DividendReceivable()
        {
            this.ClientId = string.Empty;
            this.SecurityId = string.Empty;
            this.XD = DateTime.MinValue;
            this.RateOfDividend = decimal.MinusOne;
            this.Quantity = 0;
            this.Amount = decimal.MinusOne;
            this.Received = false;            
            this.Remarks = string.Empty;
            this.PaymentDate = DateTime.MinValue;
            this.TaxRate = 0;

            #region ScripDividend
            this.Propotion = decimal.MinusOne;            
            #endregion

            #region BonusIssue
            this.ValuePerShare = decimal.MinusOne;            
            #endregion

            #region RightsIssue
            this.RenunciationDate = DateTime.MinValue;
            this.TradeCommencementDate = DateTime.MinValue;            
            #endregion
            this.QuantityReceivable = 0;
        }
    }

    public class DividendReceivableCollection : Collection<DividendReceivable>
    {
        public DividendReceivableCollection()
        {
        }
    }
}
